package main

import (
	"fmt"

	"gitee.com/mad-wud/lin"
	"github.com/gin-gonic/gin"
)

func main() {
	//创建单组件环境("checkbox", "多选框")
	//创建单组件环境("CheckboxGroup", "多选框组")
	//创建单组件环境("colorPicker", "颜色选择器")
	//创建单组件环境("DatePicker", "日期选择器")
	//创建单组件环境("input", "输入框")
	//创建单组件环境("radio", "单选框")
	//创建单组件环境("select", "选择器")
	//创建单组件环境("switch", "开关")
	//创建单组件环境("table", "表格")
	//创建单组件环境("tablecolumn","表格列")
	//创建单组件环境("dialog","对话框")
	//创建单组件环境("message","消息提示")
	//创建单组件环境("drawer","抽屉")
	//创建单组件环境("messagebox","消息弹框")
	//创建单组件环境("tabs","标签页")

	// return
	初始化()
	服务器事件()

}

func 初始化() {
	全_配置.ZR载入_重文件("./配置.json")
}

func 服务器事件() {
	//启动gin
	ginServer := gin.Default()
	ginServer.POST("/zjxg", func(ctx *gin.Context) {
		路径 := "http://localhost:3000/"
		if len(ctx.Request.Header["Referer"]) > 0 {
			路径 = ctx.Request.Header["Referer"][0]
		}
		vue路径 := ""

		var 返回表 lin.J键值表
		defer func() {
			ctx.String(200, 返回表.D到JSON())
		}()

		body, _ := ctx.GetRawData()
		var 表 lin.J键值表
		表.ZR载入(string(body))
		组件名 := 表.QW取文本("组件名")
		var 错误 error
		vue := ""
		if 组件名 == "按钮" {
			vue, 错误 = 按钮(表)
			vue路径 = "gobutton"
		} else if 组件名 == "链接" {
			vue, 错误 = 链接(表)
			vue路径 = "golink"

		} else if 组件名 == "滚动条" {
			vue, 错误 = 滚动条(表)
			vue路径 = "goscrollbar"

		} else if 组件名 == "级联选择器" {
			vue, 错误 = 级联选择器(表)
			vue路径 = "gocascader"

		} else if 组件名 == "多选框" {
			vue, 错误 = 多选框(表)
			vue路径 = "gocheckbox"

		} else if 组件名 == "多选框组" {
			vue, 错误 = 多选框组(表)
			vue路径 = "goCheckboxGroup"

		} else if 组件名 == "颜色选择器" {
			vue, 错误 = 颜色选择器(表)
			vue路径 = "gocolorPicker"

		} else if 组件名 == "日期选择器" {
			vue, 错误 = 日期选择器(表)
			vue路径 = "goDatePicker"

		} else if 组件名 == "输入框" {
			vue, 错误 = 输入框(表)
			vue路径 = "goinput"

		} else if 组件名 == "单选框" {
			vue, 错误 = 单选框(表)
			vue路径 = "goradio"

		} else if 组件名 == "选择器" {
			vue, 错误 = 选择器(表)
			vue路径 = "goselect"

		} else if 组件名 == "开关" {
			vue, 错误 = 开关(表)
			vue路径 = "goswitch"

		} else if 组件名 == "表格" {
			vue, 错误 = 表格(表)
			vue路径 = "gotable"

		} else if 组件名 == "表格列" {
			vue, 错误 = 表格列(表)
			vue路径 = "gotablecolumn"

		} else if 组件名 == "对话框" {
			vue, 错误 = 对话框(表)
			vue路径 = "godialog"

		} else if 组件名 == "消息提示" {
			vue, 错误 = 消息提示(表)
			vue路径 = "gomessage"

		} else if 组件名 == "抽屉" {
			vue, 错误 = 抽屉(表)
			vue路径 = "godrawer"

		} else if 组件名 == "消息弹框" {
			vue, 错误 = 消息弹框(表)
			vue路径 = "gomessagebox"

		} else if 组件名 == "标签页" {
			vue, 错误 = 标签页(表)
			vue路径 = "gotabs"

		} //{1}

		fmt.Println(66, 组件名, 路径+"#/"+vue路径)

		if 错误 != nil {
			返回表.C创建("err", 错误.Error(), "msg", "", "url", 路径+"#/"+vue路径)
		} else {
			返回表.C创建("err", "ok", "msg", vue, "url", 路径+"#/"+vue路径)
		}

	})

	//获取网页源码
	ginServer.POST("/getym", func(ctx *gin.Context) {

		var 返回表 lin.J键值表
		defer func() {
			ctx.String(200, 返回表.D到JSON())
		}()

		body, _ := ctx.GetRawData()
		var 表 lin.J键值表
		表.ZR载入(string(body))
		组件名 := 表.QW取文本("组件名")
		数据, 错误 := 全_文件.D读入_文件(全_文本.C创建文本("./{1}.vue", 组件名))
		if 错误 != nil {
			返回表.C创建("err", 错误.Error(), "msg", "")
		} else {
			返回表.C创建("err", "ok", "msg", string(数据))
		}

	})

	ginServer.Run(":" + 全_配置.QW取文本("gin端口"))

}
